package com.ohs.ohsoa.system.service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;

import javax.annotation.Resource;

import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.ohs.ohsoa.system.dto.NoticeDto;
import com.ohs.ohsoa.system.entity.Notice;
import com.ohs.ohsoa.system.mapper.NoticeMapper;
import com.ohs.ohsoa.system.vo.NoticeVo;
import com.ohs.ohsoa.utils.IsNull;
import com.ohs.ohsoa.utils.bean.requestBean.PageParam;
@Service
public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> implements NoticeService {

    @Resource
    private NoticeMapper noticeMapper;

    /**
     * 分页查询
     *
     * @param  pageParam 检索用参数
     * @return listUser
     * @author ccj
     * @since  2021年9月24日
     */
    @Override
    public List<NoticeVo> listNotice(PageParam<NoticeDto> pageParam) {
        // 获取notice对象
        NoticeDto noticeDto = pageParam.getSearchbean();
        // 判断传过来的时间是否为空
        if (IsNull.isNull(noticeDto.getInsertTime())) {
            noticeDto.setInsertTime(null);
        }
        // 分页
        PageHelper.startPage(pageParam.getIndexPage(), pageParam.getPageSize());
        // 获取并返回notice集合
        return noticeMapper.listNotice(noticeDto);
    }

    /**
     * 新增数据
     *
     * @param  noticeDto "实例对象"
     * @return 1为成功
     * @author ccj
     * @since  2021年9月24日
     */
    @Override
    public Boolean noticeInsert(NoticeDto noticeDto) {
        Notice notice = new Notice();
        BeanUtils.copyProperties(noticeDto, notice);
        notice.setNoId(UUID.randomUUID().toString().replace("-", ""));
        // 设置插入时间
        notice.setInsertTime(LocalDateTime.now().toString());
        return noticeMapper.noticeInsert(notice);
    }

    /**
     * 修改数据
     *
     * @param noticeDto "实例对象"
     * @return 1为成功
     * @author ccj
     * @since  2021年9月24日
     */
    @Override
    public Boolean noticeUpdate(NoticeDto noticeDto) {
        Notice notice = new Notice();
        BeanUtils.copyProperties(noticeDto, notice);
        notice.setNoId(noticeDto.getNoId().get(0));
        notice.setUpdateTime(LocalDateTime.now().toString());
        return noticeMapper.noticeUpdate(notice);
        
    }

    /**
     * 删除数据
     *
     * @param  ids "根据title单个删除"
     * @return 1为成功
     * @author ccj
     * @since  2021年9月24日
     */
    @Override
    public Boolean noticeDelete(List<String> ids) {
        return noticeMapper.noticeDelete(ids);
    }
}
